'''集合 可变序列'''
'''创建 {}'''
# a = {2, 3, 5, 5, 8, 9, 8}  # 集合中的元素不允许重复，集合中没有value值
# print(a, type(a))
# b = set([1, 2, 2, 3])  # 转化为集合
# b = set(('b', 2))  # 转化
# c = [1, 9, 8, 10, 'bai']  # 集合的元素是无序的
# c = 'blue'
# print(set(c))

'''空集合'''
# k = {}  # 不可用这种方式，创建的是字典必须内置函数set()
# print(type(k))
# k1 = set()
# print(k1, type(k1))
# k2 = {i**2 for i in range(2,8)}
# print(k2)

'''集合的操作'''
'''判断:in或 not in'''
'''新增:add添加一个元素，update添加多个元素'''
# a.add(16)
# print(a)
# a.update({99, 78, 66})
# print(a)
'''删'''
# a.remove(5)  # 有则删除，无则抛出异常
# a.discard(56)  # 不抛出异常
# a.pop()  # 任意删除一个元素，无参数、不可指定      看到是第一个但集合是无序的，所以是随机删除的
# a.clear()  # 清空集合
# print(a)
#
'''集合比较 不根据顺序判断，之根据所含内容判断'''
# b = (2, 7, 9, 8, 4)
# ac = (4, 7, 8, 2, 9)
# print(ac != b)
# print(ac == b)
'子集 超集 交集'
b = {2, 7, 9, 8, 4, 55, 87}
ac = {4, 7, 8, 2, 9}
ax = {8, 9, 87}
# print(b.issubset(ac))  # b属于ac?
# print(ac.issubset(b))  # ac属于b?
# print(b.issuperset(ac))  # b是否包括ac? //超集
# print(ac.isdisjoint(ax))  # ac和ax是否不含有交集? 有为False,无为True


'''集合的数学操作   所有操作不会对原集合作出更改'''
'''交集'''
# print(b.intersection(ax)) #显示交集元素
# print(b & ax) #  &等价于交集操作
'''并集'''
# print(b.union(ac))
# print(b | ac)
'''差集'''
# print(ax.difference(ac)) #ax里除去ac和ax共有的 对前者的操作
# print(ax - ac)
'''对称差集'''
# print(ac.symmetric_difference(ax)) #ax和ac 除去他们共有的 双方操作
print(ac ^ ax)